package com.habdqn.easybuy.service;

import com.habdqn.easybuy.entity.Product;
import com.habdqn.easybuy.util.Page;

import java.util.List;

/**
 * (Product)表服务接口
 *
 * @author Xing.Jiejian
 * @since 2020-11-26 09:47:01
 */
public interface ProductService {

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    Product queryById(Integer id);

    /**
     * 通过ID查询单条数据
     * @param id 主键
     * @param isWithCategory 关联分类对象
     * @return 实例对象
     */
    Product queryById(Integer id,boolean isWithCategory);

    /**
     * 获取分页数据
     * @param product 查询条件
     * @param page 分页对象
     * @param isWithCategory 是否关联分类对象
     * @return 分页对象
     */
    Page<Product> queryByPage(Product product, Page<Product> page,boolean isWithCategory);

    /**
     * 根据分类编号获取分页商品列表
     * @param cIds 分类编号，多个编号用","隔开
     * @param page 分页参数
     * @return 分页商品集合
     */
    Page<Product> queryByPageAndCategoryIds(String cIds, Page<Product> page);

    /**
     * 新增数据
     *
     * @param product 实例对象
     * @return 实例对象
     */
    Product insert(Product product);

    /**
     * 修改数据
     *
     * @param product 实例对象
     * @return 实例对象
     */
    Product update(Product product);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    boolean deleteById(Integer id);

}